Conversation
Crois0509
left a comment
There was a problem hiding this comment.
코드 잘 봤습니다!! 깔끔하고 멋진 코드네요!!
코드 작성 고생하셨습니다~
| for i in randomNumber.indices { | ||
| for j in input.indices { | ||
| // 자리&숫자 같으면 스트라이크 | ||
| if i == j && randomNumber[i] == input[j] { strike += 1 } | ||
| // 숫자만 같으면 볼 | ||
| else if randomNumber[i] == input[j] { ball += 1 } | ||
| } | ||
| } |
There was a problem hiding this comment.
처음보는 방식의 정답을 체크하는 방법이네요!! 메소드 없이 for-in문으로 구현하신게 멋져요!!
처음보고 볼이 안나오는거 아닌가? 하고 자세히 보니 제가 잘못 생각하고 있었다는걸 알 수 있었습니다ㅎㅎ
제가 indices라는 배열의 메소드를 사용해보지 않아서 개인적인 궁금증으로 만약 randomNumber 배열에 멤버가 없으면, 즉 인덱스가 없으면 에러가 발생할까?? 실험을 해봤습니다만...
결과는 그냥 for-in문이 실행되지 않고 에러 없이 무사히 넘어가더라구요!!
범위연산자를 쓰면 a...b일 때 b가 a보다 크지 않으면 에러가 발생하기도 해서 안정성을 생각하면 indices를 사용하는 편이 더 좋을 것 같다고 생각햇어요!
| enum Result { | ||
| case success | ||
| case strikeBall | ||
| case strike | ||
| case ball | ||
| case out | ||
|
|
||
| func printResult(strike: Int, ball: Int) { | ||
| switch self { | ||
| case .success : | ||
| print("정답입니다!\n") | ||
| case .strikeBall: | ||
| print("\(strike)스트라이크 \(ball)볼\n") | ||
| case .strike: | ||
| print("\(strike)스트라이크\n") | ||
| case .ball: | ||
| print("\(ball)볼\n") | ||
| case .out: | ||
| print("Out\n") | ||
| } | ||
| } | ||
| } |
There was a problem hiding this comment.
결과 출력을 enum으로 하신게 가독성도 좋고 깔끔해서 좋네요!!
저는 if문만 사용해서 지저분해 보이는데... 한 수 배우고 갑니다!
| print("레벨을 선택하세요 (1, 2, 4, 5, 6):") | ||
| class BaseballGame { | ||
| // 게임 기록을 저장할 2차원 배열 생성 | ||
| var gameHistory = [[0],[0]] |
There was a problem hiding this comment.
게임의 진행 횟수와 시도 횟수를 2차원 배열로 저장하고 사용하시는게 인상 깊네요!!
혹시 2차원 배열을 선택한 이유를 알 수 있을까요??
처음부터 2차원 배열을 생각하셨는지, 아니면 다른걸 시도하다가 2차원 배열을 선택하셨는지 궁금해요!!(순수한 궁금증입니다🥹)
There was a problem hiding this comment.
저도 2차원 배열을 선택하신 이유가 궁금합니다~!
|
|
||
| class RandomNumber { | ||
| // 서로 다른 임의수 3개를 만드는 함수 | ||
| func makeRandomNumber() -> [Int] { |
| @@ -0,0 +1,23 @@ | |||
| // 결과값의 열겨형 | |||
| enum Result { | |||
There was a problem hiding this comment.
케이스마다 enum 사용하신 부분 좋습니다~~!
| print("레벨을 선택하세요 (1, 2, 4, 5, 6):") | ||
| class BaseballGame { | ||
| // 게임 기록을 저장할 2차원 배열 생성 | ||
| var gameHistory = [[0],[0]] |
There was a problem hiding this comment.
저도 2차원 배열을 선택하신 이유가 궁금합니다~!
| // 서로 다른 임의수 3개를 만드는 함수 | ||
| func makeRandomNumber() -> [Int] { | ||
| // 랜덤 숫자를 저장할 Set 생성 | ||
| var randomNumber = [Int]() |
There was a problem hiding this comment.
요 프로퍼티는 쓰이지 않는 것 같아서,, 없어도 될 것 같아요!
혹시 쓰이는 곳이 있나요?
| @@ -0,0 +1,24 @@ | |||
| class InputError { | |||
There was a problem hiding this comment.
에러 처리의 경우 Error 프로토콜을 활용해보는 것도 좋아 보입니다!
개요
작업 내용